package com.star.util;

import com.star.dto.ResponseData;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * @Classname Inspection
 * @Author Star
 * @Date 2021/4/28 - 21:58
 * @Description 对token进行验证
 */
public class InspectionTokenUtils {
    public static ResponseData inspection(HttpServletRequest request, HttpServletResponse response) throws IOException {
        ResponseData responseData = null;
        // 获取请求头中的token验证字符串
        String headerToken = request.getHeader("token");
        // 检测当前页面，设置当前页不是登录页面时就对其进行拦截
        // 具体方法就是检测URL中有没有login字符串
        if (headerToken == null) {
            // 如果没有token，返回错误信息
            responseData = ResponseData.customerError();
        } else {
            try {
                // 对token更新与验证 用户是否一致
                headerToken = JavaWebToken.updateToken(headerToken);
            } catch (Exception e) {
                // 这里的ResponseData类自定义的返回信息类
                responseData = ResponseData.customerError();
            }
        }
        // 如果有错误信息
        if (responseData != null) {
            return ResponseData.customerError();
        } else {
            // 将token加入返回的header中
            response.setHeader("token", headerToken);
            return ResponseData.ok();
        }
    }
    public static ResponseData inspectionForm(String token){
        ResponseData responseData = null;
        // 获取请求头中的token验证字符串
        String headerToken = token;
        // 检测当前页面，设置当前页不是登录页面时就对其进行拦截
        // 具体方法就是检测URL中有没有login字符串
        if (headerToken == null) {
            // 如果没有token，返回错误信息
            responseData = ResponseData.customerError();
        } else {
            try {
                // 对token更新与验证 用户是否一致
                headerToken = JavaWebToken.updateToken(headerToken);
            } catch (Exception e) {
                // 这里的ResponseData类自定义的返回信息类
                responseData = ResponseData.customerError();
            }
        }
        // 如果有错误信息
        if (responseData != null) {
            return ResponseData.customerError();
        } else {
            return ResponseData.ok();
        }
    }
}
